class Solution {
public:
    bool backspaceCompare(string S, string T) {

        stack<char> s;
        stack<char> t;

        for(int i = 0; i < S.size(); i++)
        {
            if(!s.empty() && S[i] == '#')
            {
                s.pop(); 
            }
            else if(S[i] == '#')
                continue;
            else s.push(S[i]);
        }

        for(int j = 0; j < T.size(); j++)
        {
            if(!t.empty() && T[j] == '#')
            {
                t.pop(); 
            }
            else if(T[j] == '#')
                continue;
            else t.push(T[j]);
        }

        if(s.size() != t.size())
            return false;
        
        while(!s.empty())
        {
            if(s.top() == t.top())
            {
                s.pop();
                t.pop();
            }
            else return false;
        }  
        return true;

    }
};